package cn.e4j.modular.api.service;

import cn.e4j.config.properties.E4jProperties;
import cn.e4j.core.dto.Dtos;
import cn.e4j.core.dto.impl.Dto;
import cn.e4j.modular.api.mapper.Gwaq554Mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by shixc on 2019/4/1.
 */

@Service
public class Gwaq554Service{

    @Autowired
    Gwaq554Mapper gwaq554Mapper;

    @Autowired
    E4jProperties e4jProperties;

    /**
     * 获取本年成单总金额
     *
     * @param inDto
     * @return
     */
    public Dto getGwaq554List(Dto inDto) {
        switch (e4jProperties.getDbType()){
            case "oracle":
                return gwaq554Mapper.getGwaq554ListOra(inDto);
            case "sqlserver":
                return gwaq554Mapper.getGwaq554List(inDto);
        }
        return null;

    }

    /**
     * 获取本年成单信息列表
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwaq554ListPage(Dto inDto) {
        List<Dto> list = gwaq554Mapper.getGwaq554ListPage(inDto);
        return list;
    }

    /**
     * 获取本年商机总金额
     *
     * @param inDto
     * @return
     */
    public Dto getGwaq555List(Dto inDto) {
        switch (e4jProperties.getDbType()){
            case "oracle":
                return gwaq554Mapper.getGwaq555ListOra(inDto);
            case "sqlserver":
                return gwaq554Mapper.getGwaq555List(inDto);
        }
        return null;
    }

    /**
     * 获取本月拜访总数量
     *
     * @param inDto
     * @return
     */
    public Dto getGwaq556List(Dto inDto) {

        return gwaq554Mapper.getGwaq556List(inDto);
    }

    public Dto getGwaq556Count(Dto inDto) {
        switch (e4jProperties.getDbType()){
            case "oracle":
                return gwaq554Mapper.getGwaq556CountOra(inDto);
            case "sqlserver":
                return gwaq554Mapper.getGwaq556Count(inDto);
        }
        return null;
    }

    public Dto getGwaq556Count2(Dto inDto) {
        switch (e4jProperties.getDbType()){
            case "oracle":
                return gwaq554Mapper.getGwaq556Count2Ora(inDto);
            case "sqlserver":
                return gwaq554Mapper.getGwaq556Count2(inDto);
        }
        return null;
    }

    /**
     * 获取本月拜访信息列表
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwaq556ListPage(Page<Object> page,Dto inDto) {
        List<Dto> list = new ArrayList<>();

        switch (e4jProperties.getDbType()){
            case "oracle":
                if (inDto.getString("GWAK006").equals("1")) {
                    list = gwaq554Mapper.getGwaq556List1PageOra(inDto);
                } else if (inDto.getString("GWAK006").equals("2")) {
                    list = gwaq554Mapper.getGwaq556List2PageOra(page,inDto);
                }
                break;
            case "sqlserver":
                if (inDto.getString("GWAK006").equals("1")) {
                    list = gwaq554Mapper.getGwaq556List1Page(inDto);
                } else if (inDto.getString("GWAK006").equals("2")) {
                    list = gwaq554Mapper.getGwaq556List2Page(page,inDto);
                }
                break;
        }
        return list;
    }

//    /**
//     * 根据当前人员和下属人员获取商机主题信息
//     * <p>
//     * list所属部门+下级部门 来自 getSys003()
//     *
//     * @return
//     * @author wenchuan.li 2018/10/26 12:27.
//     */
//    public Dto getGwbg(List<Dto> list) {
//        List<Dto> _list = new ArrayList<>();
//        UserModel currentUser = UserUtils.getCurrentCacheUser();
//        Dto inDto = Dtos.newDto();
//        //如果小于等于1 代表没有下级
//        if (list.size() > 1) {
//            _list = sqlDao.list(Gwaq554Service.class.getName() + (".getGwbg"), Dtos.newDto("ywy", list));
//            if (AppUtils.isEmpty(_list)) {
//                _list = new ArrayList<>();
//
//            }
//        }
//        inDto.put("gwbg001", _list);
//        return inDto;
//    }
//
//    /**
//     * 获取该商机主题对应的经销商列表
//     *
//     * @param inDto
//     * @return
//     */
//    public List<Dto> jxsList(Dto inDto) {
//        return sqlDao.list(Gwaq554Service.class.getName() + ".getJxsList", inDto);
//    }
//
//    /**
//     * 获取经销商列表
//     *
//     * @param inDto
//     * @return
//     */
//    public List<Dto> getjxsList(Dto inDto) {
//        return sqlDao.list(Gwaq554Service.class.getName() + ".getJxsList", inDto);
//    }
//
//
//    /**
//     * 获取竞争信息列表
//     *
//     * @param inDto
//     * @return
//     */
//    public List<Dto> getJzxxPage(Dto inDto) {
//        return sqlDao.list(Gwaq554Service.class.getName() + ".getJzxxPage", inDto);
//    }
//
//    /**
//     * 根据主题+客户获取已有的 评估值
//     *
//     * @param inDto
//     * @return
//     */
//    public List<Dto> getPgx(Dto inDto) {
//
//        return sqlDao.list(Gwaq554Service.class.getName() + ".getPgx", inDto);
//
//    }
//
//    /**
//     * 获取拜访历程 列表
//     *
//     * @param inDto
//     * @return
//     */
//    public List<Dto> getBflcPage(Dto inDto) {
//        List<Dto> list = new ArrayList<>();
//        if ("1".equals(inDto.getString("keyword"))) {
//            list = sqlDao.list(Gwaq554Service.class.getName() + ".getBflcPage1", inDto);
//
//        } else if ("2".equals(inDto.getString("keyword"))) {
//            list = sqlDao.list(Gwaq554Service.class.getName() + ".getBflcPage2", inDto);
//
//        } else if ("3".equals(inDto.getString("keyword"))) {
//            list = sqlDao.list(Gwaq554Service.class.getName() + ".getBflcPage3", inDto);
//
//        }
//        return list;
//    }
//
//    /**
//     * 根据成交率分类（A\B\C）统计商机明细数量
//     *
//     * @param inDto
//     * @return
//     * @author wenchuan.li on 2018/11/21 17:40
//     */
//    public List<Dto> statsSJ(Dto inDto) {
//        return sqlDao.list(Gwaq554Service.class.getName() + ".statsSJ", inDto);
//    }

}
